Cook the unpeeled potatoes in boiling salted water for 20 minutes. Cool. Preheat the oven to 350F. Peel the potatoes and slice thickly. Melt the butter in a frying pan and cook the onions until softened, about 10 minutes, stirring frequently. Stir in the diced ham and potatoes, and cook for 15 minutes. Stir in the white wine and season with salt and pepper. Pour the potato, onion, ham and wine mixture into a large gratin dish. Place the salmon fillets on top of the potato. Sprinkle with the grated cheese. Cover with aluminum foil and bake for 30 minutes.